<?php 
class excution extends CI_Controller  {

        /**
        * Index Page for this controller.
        *
        * Maps to the following URL
        * 		http://example.com/index.php/welcome
        *	- or -  
        * 		http://example.com/index.php/welcome/index
        *	- or -
        * Since this controller is set as the default controller in 
        * config/routes.php, it's displayed at http://example.com/
        *
        * So any other public methods not prefixed with an underscore will
        * map to /index.php/welcome/<method_name>
        * @see http://codeigniter.com/user_guide/general/urls.html
        */
        function __construct(){
            parent::__construct();
            $this->load->helper('url');
            $this->load->library('smarty3');
            $this->smarty=new CI_Smarty3();
            $this->smarty->error_reporting =0;// E_ALL & ~E_NOTICE;
            $this->load->model('customer_model');
            $this->load->module('frontend');
        }
        public function index(){
            
        }
        function clearcache() {
            $this->load->driver('cache');
            if($this->cache->file->clean()){
                echo '<script type="text/javascript">alert("Success. All caches has been clean.")</script>';
            }else{
                echo '<script type="text/javascript">alert("Fail")</script>';
            }
        }
        function getalias(){
            $text=$this->input->post("text");
            $result=1;
            $message=convertUrl($text);
            echo json_encode(array(
                "result"=>$result,
                "message"=>$message,
                "alias"=>$message
            ));
        }
        function addcustomer(){
            $R["result"] = -1;
            $R["message"] = ascii_to_entities("This function to requires an administrative account.<br/>Please check your authority, and try again.");
            if(isset($_SESSION['customerreg'])){
                if(time()-$_SESSION['customerreg']>60)$_SESSION['customerreg']=null;
                else{
                    $R["message"]="Thời gian giãn cách giữa 2 yêu cầu là 60s. Vui lòng thao tác chậm lại.";
                    goto result;
                }
            }
            $params=$this->input->post();
            unset($params["re_cust_password"]);
            $params['cust_salt']=random_string('alnum', 8);
            $params['cust_password']=md5($params['cust_email'].$params['cust_password'].$params['cust_salt']);
            $rs = $this->frontend->addCustomer($params);
            if ($rs === true) {
                $R["result"] = 1;
                $R["message"] = ascii_to_entities("Dữ liệu đã được hệ thống ghi nhận.");
                $_SESSION['customerreg']=time();
            } else {
                $R["result"] = -1;
                $R["error_number"] = $this->db->_error_number();
                $R["error_message"] = $this->db->_error_message();
                if(1062==$R["error_number"]){
                        $R["message"] = "Email đã được đăng ký.";
                }else{
                        $R["message"] = "
                        Dữ liệu chưa được hệ thống ghi nhận.<br/>
                        Vui lòng kiểm tra dữ liệu và thử lại.<br/>
                        ";
                }
                //if ($R["error_number"] != 0)
                    //$R["message"].=ascii_to_entities("<span class='erc'>[" . $R["error_number"] . "] " . $R["error_message"] . ".</span>");
            }
            result:
            echo json_encode($R);
        }
        function custlogin(){
            $R["result"] = -1;
            $R["message"] = ascii_to_entities("Đăng nhập thất bại.");
            $e=$this->input->post('login_email');$p=$this->input->post('login_password');
            if($this->frontend->checkLogin($e,$p)){
                $R["result"] = 1;
                $R["message"] = ascii_to_entities("Đăng nhập thành công.");
            }
            result:
            echo json_encode($R);
        }
        function logout(){
            unset($_SESSION['frontend']['customer']);
            redirect();
        }
        function addcontact(){
            
            $this->load->model('frontend_model');
            $R["result"] = -1;
            $R["message"] = ascii_to_entities("This function to requires an administrative account.<br/>Please check your authority, and try again.");
            if(isset($_SESSION['addcontact'])){
                if(time()-$_SESSION['addcontact']>60)$_SESSION['addcontact']=null;
                else{
                    $R["message"]="Thời gian giãn cách giữa 2 yêu cầu là 60s. Vui lòng thao tác chậm lại.";
                    goto result;
                }
            }
            $params=$this->input->post();
            $rs = $this->frontend_model->addcontact($params);
            if ($rs === true) {
                $R["result"] = 1;
                $R["message"] = ascii_to_entities("Dữ liệu đã được hệ thống ghi nhận.");
                $_SESSION['addcontact']=time();
            } else {
                $R["result"] = -1;
                $R["error_number"] = $this->db->_error_number();
                $R["error_message"] = $this->db->_error_message();
                $R["message"] = ascii_to_entities("
                        Dữ liệu chưa được hệ thống ghi nhận.<br/>
                        Vui lòng kiểm tra dữ liệu và thử lại.<br/>
                        ");
                if ($R["error_number"] != 0)
                    $R["message"].=ascii_to_entities("<span class='erc'>[" . $R["error_number"] . "] " . $R["error_message"] . ".</span>");
            }
            result:
            echo json_encode($R);
        }
}
?>